USB (Universal Serial Bus) connections are commonly used to establish communication between devices and a host controller (usually personal computers). USB has replaced many varieties of serial and parallel ports, and can connect various computer peripherals such as mice, keyboards, digital cameras, printers, personal media players, flash drives, and external hard drives to a computer. For many of those devices, USB has become the standard connection method. USB was designed for personal computers, but it has become commonplace on other devices such as smartphones, PDAs and video game consoles, and as a power cord between a device and an AC adapter plugged into a wall plug for charging.
In another aspect of computing, systems exist to facilitate remote control of and access to a computer by an operator at a remote station. Such systems typically use a device or mechanism that enables an operator at a remote station to control aspects of a so-called target (or local) computer. More particularly, such systems typically allow a remote station to provide mouse and keyboard input to the target computer and further allow the remote station to view the video display output of the target computer. These types of systems are typically called keyboard-video-mouse (KVM) systems.
Remote KVM systems allow a user to interact with a computer anywhere in the world via the keyboard, mouse, and video, as if they were seated right next to the computer. In addition to virtualization of the keyboard, mouse and video, storage media such as CD/DVD-ROMs, flash drives, and floppy disks have also been virtualized. As such, a user can provide access to data on a disk to a server anywhere in the world.
Some conventional systems virtualize USB devices over a network. In such systems, a user may use a USB device connected to a remote computer as if it was connected to the local computer. Conventional USB-over-IP systems allow a user to use a USB device in one location while it is virtualized from a PC in another location and provide special software installed and running on the target computer to interact with a USB device. However, this software running on the target must be specifically tailored, requires greater overhead and infrastructure, and provides less flexibility. These products also require special software be installed on both the local PC and the remote PC. Installing software on the client PC may be acceptable, but installing it on the target PC is typically not as it may violate the security of the computer to be accessed.
The remote target computer does not typically have a USB connection to a local USB device without the installation of software on the target computer. Accordingly, there is a desire for a system that provides virtualization of USB device use while not requiring special software to do so.